package com.mwh.yuantu.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.mwh.yuantu.entity.ChannelInfoEntity;
import com.mwh.yuantu.entity.NavInfoEntity;
import com.mwh.yuantu.parameter.ChannelInfoParameter;
import com.mwh.yuantu.parameter.ChannelInfoSearchParameter;
import com.mwh.yuantu.dto.ChannelInfoDTO;
import org.springframework.beans.BeanUtils;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.util.StringUtils;

import java.util.*;

/**
 * (ChannelInfo)表服务接口
 *
 * @author maweihong
 * @since 2023-11-01 09:47:29
 */
@Service
@Slf4j
public class ChannelInfoService extends BaseService {

    /**
     * 查询频道列表
     */
    public List<ChannelInfoEntity> list() {
        return channelInfoDao.list();
    }

    /**
     * 根据主键查询频道信息
     * @param id 主键
     * @return
     */
    public ChannelInfoEntity selectById(String id) {
        if (StringUtils.isEmpty(id)) {
            return null;
        }
        return channelInfoDao.selectById(id);
    }

    /**
     * 保存频道内容
     * @param channelInfo
     */
    public void save(ChannelInfoEntity channelInfo) {
        // 判断是新增还是更新
        if (StringUtils.isEmpty(channelInfo.getId())) {
            // 新增
            channelInfoDao.insert(channelInfo);
            // 添加进导航
            NavInfoEntity navInfo = new NavInfoEntity();
            navInfo.setSort(Integer.valueOf("1"));
            navInfo.setName(channelInfo.getName());
            navInfo.setLink("portal/portal.action?channelId="+channelInfo.getId());
            navInfo.setIsIndex(Integer.valueOf("0"));
            navInfo.setIsUse(Integer.valueOf("1"));
            navInfo.setType("system");
            navInfo.setChannelId(channelInfo.getId());

            iNavInfoDAO.insert(navInfo);
        } else {
            // 更新
            channelInfoDao.update(channelInfo);

            // 更新导航
            NavInfoEntity navInfo = new NavInfoEntity();
            navInfo.setName(channelInfo.getName());
            navInfo.setChannelId(channelInfo.getId());

            iNavInfoDAO.updateByChannel(navInfo);
        }
    }

    /**
     * 删除频道
     * @param id
     */
    public void delete(String id) {
        // 删除频道
        channelInfoDao.delete(id);

        // 删除导航中对应的链接
        iNavInfoDAO.deleteByChannelId(id);
    }
    
}

